var express = require('express');
var app = express();
var server = require('http').createServer(app);
//静态文件中间件，指定文件路径
app.use(express.static(__dirname+'/static'));
//路由，根路径打开 index.html
app.get('/', function (req, res) {
  // res.send('Hello world!');
  res.sendFile(__dirname+'/index.html');
});
//开启一个端口为 3000 的本地服务
server.listen(3000,function(){
	console.log('http://localhost:3000')
});


var users = [];   //储存所有用户信息

var io = require('socket.io')(server);

//建立了连接
io.on("connection",function(socket){
	console.log(socket.id)	

    //用户登录
	socket.on("login",function(data,cb){
		if(cb) cb(users);
		users.push(data);                    //用户信息加入数组
		//socket.emit('login',users);        //发给自己
		// io.emit('login',data);            //发给所有人
		socket.broadcast.emit('login',data); //发给除自已外的所有人
		console.log(data)
	})

    //消息收发
	socket.on("msg",function(data,cb){
        if(data.to != 'qunid'){
        	io.to(data.to).emit('msg',data);  //发给指定人
        }else{
        	socket.broadcast.emit('msg',data); //发给除自已外的所有人
        }
		if(cb) cb(1);
	})


	//用户断开连接时
	socket.on("disconnect",function(){
		var index,id = socket.id;
		users.forEach(function(item,i){
			if(item.id == id){
				index = i
			}
		})
		var data = users.splice(index,1);
		io.emit('out',data[0]);          //发给所有人

		console.log(socket.id,'-----',data[0])
	})  
})






